home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
COMMODOR
/
WORDWORK.ARC
/
WORD WORKER
(
.txt
)
Wrap
Commodore BASIC
|
2000-06-30
|
8KB
|
297 lines
10 REM WORD WORKER 1.0
20 REM BY
30 REM JIM GARRICK
40 REM:
50 REM:*** C-64 VERSION *******
90 SC=53281:BO=53280:X=1:PRINTCHR$(8):CX=204:CL=207
95 DIMA$(1000):DIMP$(100):POKE650,128
100 POKESC,0:POKEBO,14
110 PRINTCHR$(14):PRINT"[147][150] [205][197][206][213] [154]"
130 PRINTTAB(11)"[153][195][146][154]REATE DOCUMENT."
140 PRINT""TAB(11)"[153][208][146][154]RINT DOCUMENT."
160 PRINT""TAB(11)"[153][199][146][154]ET DOCUMENT."
165 PRINT""TAB(11)"[153][211][146][154]AVE DOCUMENT."
170 PRINT""TAB(11)"[153][204][146][154]IST DOC. ON SCREEN."
175 PRINT""TAB(11)"[153][196][146][154]ELETE DISK FILE."
177 PRINT""TAB(11)"[153][197][146][154]DIT DOCUMENT."
180 PRINT""TAB(11)"[153][210][146][154]EAD CATALOG."
190 PRINT""TAB(11)"[153][205][146][154]EMORY CLEAR."
191 PRINT""TAB(11)"[153][212][146][154]ERMINATE."
195 PRINTCHR$(17)TAB(10)"[158] [195][200][207][201][195][197] ?"
200 C$="":GETC$:GOSUB1000:IFC$=""THEN200
203 M$=LEFT$(M$,1)
205 IFC$="C"THENGOSUB500
210 IFC$="P"THENGOSUB2000
212 IFC$="G"THENGOSUB3000
215 IFC$="S"THENGOSUB4000
220 IFC$="L"THENGOSUB6000
225 IFC$="D"THENGOSUB7000
226 IFC$="E"THENGOSUB8000
227 IFC$="M"THENGOSUB5000
228 IFC$="R"THENGOSUB11000
230 IFC$="T"THENPRINT"[147][154]"CHR$(142)CHR$(9):POKESC,6:POKEBO,14:POKE650,0:END
260 GOTO100
399 REM ********* INPUT ROUTINE ***********************************************
500 MA=40:E=0:IFX>1THENA$(X)=""
510 PRINTCHR$(147)" [206][197][215][160][205][207][196][197] ":C$=""
512 IFX>1THENPRINTCHR$(19)CHR$(28)CHR$(18)"[195][207][206][212][201][206][213][193][212][201][207][206] [146]"
513 IFE=1THENPRINTCHR$(19)CHR$(158)CHR$(18)"[210][197][208][204][193][195][197][205][197][206][212] [146]"
515 PRINT"[145][198]-1 = [205]ENU [198]-2 = [206]EW PAGE "
516 PRINT"[145][198]-3 = [197]NLARGED [198]-4 = [206]ORMAL "
517 PRINT"[145][198]-5 = [213]NDERLINE ON [198]-6 = [213]NDERLINE OFF"
518 PRINT"[145][198]-7 = [201]TALICS ON [198]-8 = [201]TALICS OFF [154]"
519 PRINTA$(X);:IFE=1THENA$(X)="":PRINT
520 IF PEEK(214)>23THENPOKECX,1:POKECL,0:GOTO510
522 POKECX,0:POKECL,0:GETC$:GOSUB1000:IFC$=""THEN522
523 POKECL,2
530 IFC$=CHR$(160)THENC$=CHR$(32)
533 IFC$=CHR$(13)ANDE=1THEN700
534 IFC$=CHR$(137)THENPRINTCHR$(95);:GOTO750
535 IFC$=CHR$(134)THENPRINTCHR$(94);:GOTO750
536 IFC$=CHR$(138)THENPRINTCHR$(95);:GOTO750
537 IFC$=CHR$(135)THENPRINTCHR$(94);:GOTO750
538 IFC$=CHR$(139)THENPRINTCHR$(95);:GOTO750
539 IFC$=CHR$(136)THENPRINTCHR$(94);:GOTO750
540 IFC$=CHR$(140)THENPRINTCHR$(95);:GOTO750
575 IFC$=CHR$(133)THEN703
577 IFC$=CHR$(20)ANDLEN(A$(X))=0THEN522
579 IFC$=CHR$(13)THENA$(X)=A$(X)+C$:X=X+1:PRINTCHR$(32):GOTO520
580 PRINTC$;
600 IFC$=CHR$(20)THENA$(X)=LEFT$(A$(X),LEN(A$(X))-1):GOTO522
610 A$(X)=A$(X)+C$:C$="":IFLEN(A$(X))<MATHEN522
620 IFRIGHT$(A$(X),1)=CHR$(32)THENGOTO640
630 A$(X+1)=RIGHT$(A$(X),1)+A$(X+1):A$(X)=LEFT$(A$(X),LEN(A$(X))-1):GOTO620
640 FORU=1TOMA-LEN(A$(X)):PRINTCHR$(20);:NEXTU
645 FORA=1TOLEN(A$(X+1)):PRINTCHR$(32);:NEXTA
670 X=X+1:PRINTA$(X);:GOTO520
700 IFA$(X)=""THENA$(X)=" "
701 A$(X)=A$(X)+C$:X=X+1
703 IFE=1THENE=0:X=1:POKECX,1:POKECL,0:RETURN
704 IFC$=CHR$(133)ANDLEN(A$(X))>1THENX=X+1
705 A$(X)=CHR$(7):POKECX,1:POKECL,0:RETURN
750 A$(X)=A$(X)+C$:GOTO522
999 REM ******* CHECK GET STATEMENT *******************************************
1000 IFC$=CHR$(145)THENC$=""
1010 IFC$=CHR$(29)THENC$=""
1020 IFC$=CHR$(157)THENC$=""
1030 IFC$=CHR$(19)THENC$=""
1040 IFC$=CHR$(147)THENC$=""
1045 IFC$=CHR$(17)THENC$=""
1050 RETURN
1999 REM ******* PRINT ROUTINE ************************************************
2000 POKEBO,0:POKESC,9:PRINTCHR$(147):PRINTCHR$(144)
2005 PRINT:PRINT"[204][201][206][197] [204][197][206][199][212][200] [146] 60";:INPUT"[157][157][157][157]";LA
2007 PRINT:PRINT"[201][206][211][197][212][160][204][197][206][199][212][200] [146]40";:INPUT"[157][157][157][157]";LB
2009 PRINT:PRINT"[211] OR [196] [211][208][193][195][201][206][199][146] S ";:INPUT"[157][157][157][157]";SD$
2011 PRINT:PRINT"[204][201][206][197][160][208][197][210][160][208][193][199][197] [146] 50";:INPUT"[157][157][157][157]";SK:SK=66-SK
2012 T1$="":X=1:LL=LA:T$="":T2$="":P$=""
2050 OPEN4,4,7:PRINT#4,CHR$(27)"[206]"CHR$(SK)
2051 IFA$(X)=""THEN2660
2059 T2$=A$(X)
2060 FORA=1TOLL-LEN(P$)
2061 IFT2$=""THEN2094
2065 X$=LEFT$(T2$,1):T2$=RIGHT$(T2$,LEN(T2$)-1)
2075 IFX$=CHR$(91)THENLL=LB:GOTO2060
2076 IFX$=CHR$(93)THEN2060
2080 REM * PRINTER FUNCTION CONVERSION *
2081 IFX$=CHR$(134)THENX$=CHR$(14)
2082 IFX$=CHR$(135)THENX$=CHR$(27)+CHR$(45)+CHR$(1)
2083 IFX$=CHR$(136)THENX$=CHR$(27)+CHR$(52)
2084 IFX$=CHR$(137)THENX$=CHR$(12)
2085 IFX$=CHR$(138)THENX$=CHR$(15)
2086 IFX$=CHR$(139)THENX$=CHR$(27)+CHR$(45)+CHR$(0)
2087 IFX$=CHR$(140)THENX$=CHR$(27)+CHR$(53)
2088 REM *****************************
2089 IFX$=CHR$(13)THEN2660
2090 P$=P$+X$
2094 IFLEN(T2$)=0THENX=X+1:GOTO2051
2095 NEXTA
2100 GOTO2610
2200 FORA=1TOLA
2210 X$=LEFT$(T2$,1):T2$=RIGHT$(T2$,LEN(T2$)-1)
2211 IFLEN(T2$)=0THENX=X+1:T2$=A$(N)
2220 IFX$=CHR$(13)THEN2300
2230 P$=P$+X$
2240 NEXTA
2300 IN=(80-LEN(P$))/2:GOTO2670
2610 FORA=1TOLEN(P$)
2620 IFRIGHT$(P$,1)=CHR$(32)THEN2660
2630 T1$=RIGHT$(P$,1)+T1$:P$=LEFT$(P$,LEN(P$)-1)
2640 NEXTA
2660 IFLEFT$(P$,1)=CHR$(32)THENP$=RIGHT$(P$,LEN(P$)-1)
2662 PRINTP$
2665 IN=(80-LL)/2
2670 PRINT#4,CHR$(17)SPC(IN)P$:P$="":P$=T1$:T1$=""
2680 IFSD$="D"THENPRINT#4,CHR$(10)
2700 IFX$=CHR$(13)THENLL=LA
2705 IFLEFT$(A$(X-1),1)=CHR$(7)THENPRINT#4,CHR$(12):PRINT#4:CLOSE4:RETURN
2710 GOTO2060
2999 REM ****** LOAD ROUTINE **************************************************
3000 PRINTCHR$(147):POKE214,11:PRINT
3001 PRINT" [197]NTER DOCUMENT NAME. ":INPUTNA$
3010 PRINT" [196]ISK OR [212]APE? (D/T)[146] ":INPUT" D[157][157][157]";T$:T$=LEFT$(T$,1)
3025 CS$="":PRINT" [207]K TO CLEAR MEMORY (Y/N)[146] ":INPUT" N[157][157][157]";CS$
3026 CS$=LEFT$(CS$,1):IFCS$="Y"THENGOSUB5000
3027 A$(X)=""
3028 IFT$="T"THENOPEN8,1,0,NA$:GOTO3040
3031 OPEN15,8,15:OPEN8,8,8,"@0:"+NA$+",S,READ":GOSUB10000:IFEA>20THEN3480
3040 PRINT" [210]EADING FILE. "
3050 FORA=1TO35
3055 GET#8,C$
3060 IFST<>0THEN3480
3090 IFC$=CHR$(13)THENA$(X)=A$(X)+C$:X=X+1:GOTO3050
3110 A$(X)=A$(X)+C$
3120 NEXTA
3125 FORB=1TO45
3130 GET#8,C$
3135 IFST<>0THEN3480
3140 IFC$=CHR$(13)THENA$(X)=A$(X)+C$:X=X+1:GOTO3050
3150 IFC$=CHR$(32)THENA$(X)=A$(X)+C$:X=X+1:GOTO3050
3155 A$(X)=A$(X)+C$
3160 NEXTB
3170 X=X+1:GOTO3050
3480 CLOSE8:CLOSE15
3499 RETURN
3999 REM ******** SAVE ROUTINE ************************************************
4000 PRINTCHR$(147):POKE214,11:PRINT:X=1
4001 PRINT" [197]NTER DOCUMENT NAME. ":INPUTNA$
4005 PRINT" [196]ISK OR [212]APE? (D/T)[146] ":INPUT" D[157][157][157]";T$:T$=LEFT$(T$,1)
4006 IFT$="T"THENOPEN7,1,1,NA$:GOTO4020
4010 OPEN15,8,15:OPEN7,8,7,"@0:"+NA$+",S,WRITE":GOSUB10000:IFEA>20THEN4060
4020 PRINT " [211]AVING",NA$
4040 IFLEFT$(A$(X),1)=CHR$(7)THENPRINT#7,A$(X):GOTO4060
4055 PRINT#7,A$(X);:X=X+1
4057 GOTO4040
4060 CLOSE7:CLOSE15
4070 RETURN
4999 REM ******** CLEAR ARRAY *************************************************
5000 PRINT"[153] [195][204][197][193][210][201][206][199][160][205][197][205][207][210][217] ":FORX=1TO1000
5010 A$(X)=""
5020 NEXT
5023 X=1
5030 RETURN
5999 REM ******** LIST TO SCREEN **********************************************
6000 Q=X:X=1
6005 PRINTCHR$(147)
6015 IFA$(X)=CHR$(7)ORA$(X)=""THEN 6100
6020 PRINT A$(X)
6025 IFPEEK(214)>21THEN6100
6030 X=X+1:GOTO6015
6100 PRINT" [200][201][212][160][193][206][217][160][203][197][217][160][212][207][160][195][207][206][212][201][206][213][197] "
6110 GETW$:IFW$=""THEN6110
6113 IFA$(X)=""THEN RETURN
6115 IFA$(X)=CHR$(7)THENX=Q:RETURN
6120 X=X+1:GOTO6005
6999 REM ******** SCATCH FILE *************************************************
7000 PRINTCHR$(147):POKE214,11:PRINT
7001 OPEN 15,8,15
7003 PRINT" [197]NTER FILE TO DELETE ":INPUTNA$
7005 PRINT#15,"S0:"+NA$
7010 INPUT#15,A$,B$,C$,D$
7020 PRINTA$,B$,C$,D$
7030 CLOSE15
7040 FORT=1TO1000:NEXT:RETURN
7999 REM ******* EDIT RUOTINE *************************************************
8000 PRINT"[147]":POKESC,9:POKEBO,0:PRINTSPC(13)"[158][197][196][201][212] [205][207][196][197]":PRINT
8005 CR$="":ER$="":Q=X:X=1
8010 PRINT"[158][208][210][197][211][211] [198]-1[146] = [210]ETURN TO MENU."
8011 PRINT" [198]-2[146] = [205]OVE A LINE."
8012 PRINT" [198]-3[146] = [210]EPLACE LINE."
8013 PRINT" [198]-5[146] = [211]EARCH BACKWARD."
8016 PRINT" [198]-7[146] = [211]EARCH FORWARD."
8020 PRINT" [198]-8[146] = [199]LOBAL CHANGE."
8026 PRINT" [195]HOICE ?"
8030 GETC$:GOSUB1000:IFC$=""THEN8030
8035 IFX<1THENX=1
8036 IFX>1000THENX=1000
8040 IFC$=CHR$(136)THENPRINTX;" [158]"A$(X):X=X+1:IFX>QTHENX=Q:PRINT"[197][206][196] [207][198] [196][193][212][193][146]"
8045 IFC$=CHR$(135)THENPRINTX;" [158]"A$(X):X=X-1
8050 IFC$=CHR$(134)THENINPUT"[197][206][212][197][210][160][204][201][206][197][160]#[146]";NU:GOTO8362
8055 IFC$=CHR$(133)THENX=Q:RETURN
8060 IFC$=CHR$(137)THEN 8100
8061 IFC$=CHR$(140)THEN 8200
8064 GOTO8030
8100 INPUT"[197][206][212][197][210] [204][201][206][197](S)[160]#[160][212][207][160][194][197][160][205][207][214][197][196][146]";M1
8102 INPUT" [219] [193][206][207][212][200][197][210][146]";M2
8103 IFLEN(A$(M1))+LEN(A$(M2))>80THENPRINT"[211][212][210][201][206][199][160][212][207][160][204][207][206][199][146]":X=1:GOTO8010
8104 IFRIGHT$(A$(M1),1)=CHR$(13)ANDM2>0THENA$(M1)=LEFT$(A$(M1),LEN(A$(M1))-1)
8110 INPUT"[197][206][212][197][210] [204][201][206][197][160]#[160][212][207][160][194][197][160][210][197][208][204][193][195][197][196][146]";M3
8120 JG$=A$(M1)+CHR$(32)+A$(M2):A$(M3)="":A$(M1)="":A$(M2)=""
8125 A$(M3)=JG$
8150 X=1:GOTO8010
8200 PRINT"[158][197][206][212][197][210] [215][207][210][196][160][212][207][160][195][200][193][206][199][197][146]:[144]"
8210 FORA=1TO80
8220 GETC$:GOSUB1000:IFC$=""THEN8220
8225 IFC$=CHR$(13)THEN8250
8226 IFC$=CHR$(20)THENER$=LEFT$(ER$,LEN(ER$)-1):GOTO8235
8230 ER$=ER$+C$
8235 PRINTC$;
8240 NEXTA
8250 PRINT:PRINT"[158][197][206][212][197][210] [195][207][210][210][197][195][212][201][207][206][144][146]"
8255 O=LEN(ER$)
8260 FORA=1TO80
8270 GETJ$:IFJ$=""THEN8270
8280 IFJ$=CHR$(13)THEN8310
8281 IFJ$=CHR$(20)THENCR$=LEFT$(CR$,LEN(CR$)-1):GOTO8290
8285 CR$=CR$+J$
8290 PRINTJ$;
8300 NEXTA
8310 PRINT:PRINT"[158][211][197][193][210][195][200][201][206][199]"
8320 FORA=1TO1000
8321 FORB=1TOLEN(A$(A))
8322 IFLEFT$(A$(A),1)=CHR$(7)THEN8348
8329 IFMID$(A$(A),B,O)=ER$THENOO=LEN(A$(A))-B+1-LEN(ER$)
8330 IFMID$(A$(A),B,O)=ER$THENWC$=RIGHT$(A$(A),OO)
8340 IFMID$(A$(A),B,O)=ER$THENPRINT"[198][207][213][206][196][146]"CHR$(144)A$(A)CHR$(158):GOTO 8344
8342 NEXTB
8343 NEXTA
8344 INPUT"[195][200][193][206][199][197] [146] Y[157][157][157]";T$
8345 IFT$<>"Y"THENPRINT"[158][211][197][193][210][195][200][201][206][199]":GOTO8342
8346 A$(A)=LEFT$(A$(A),B-1)+CR$+WC$:PRINTA$(A):PRINT"[211][197][193][210][195][200][201][206][199][146]":GOTO8342
8348 PRINT"[147][158][211][197][193][210][195][200] [195][207][205][208][204][197][212][197] [144]":PRINT:ER$="":CR$="":X=1:GOTO8010
8362 X=NU:E=1:MA=80:POKEBO,14:POKESC,0:GOSUB510:POKEBO,0:POKESC,9
8365 X=1:PRINTCHR$(147)
8370 GOTO8010
9999 REM ******** READ ERROR CHANNEL ******************************************
10000 INPUT#15,EA,EB$,EC,ED:IFEA<20THENRETURN
10005 IFEA=50THENRETURN
10010 PRINT""EA;""EB$"[146]",EC;ED
10020 PRINT" HIT ANY KEY TO CONTINUE."
10025 GETW$:IFW$=""THEN10025
10030 RETURN
10999 REM ****** READ CATALOG *************************************************
11000 PRINT"[147] [210][197][193][196][201][206][199] [195][193][212][193][204][207][199] [154]":OPEN1,8,0,"$
11005 [129]L[178]1[164]100:P$(L)[178]"":[130]:G[178]1
11190 [161]#1,B$:[139]ST[179][177]0[167]11270
11200 [139]B$[179][177][199](34)[167]11190
11210 P$[178]""
11220 [161]#1,B$:[139]B$[179][177][199](34)[167]P$[178]P$[170]B$:[137]11220
11230 [161]#1,B$:[139]B$[178][199](32)[167]11230
11240 P$(G)[178]P$:[151]214,12:[153]:[153][199](18)[199](158)[163]18)G
11250 [161]#1,B$:[139]B$[179][177]""[167]11250
11260 [139]ST[178]0[167]G[178]G[170]1:[137]11190
11270 [160]1
11290 N[178]10
11300 [153]"LOADPRINTSYSSTR$RIGHT$(null)(null)CLOSELEN(null)(null)(null)VAL(null)(null)(null) FOR":[153]
11320 [139]N[179]10[167]N[178]10
11330 [139]N[177]100[167]N[178]100
11340 [129]J[178](N[171]9)[164]N:[139]J[178]1[167][153]""P$(J):[130]J
11343 [153]P$(J)
11345 [130]J
11350 [153][199](19)[163]18)" (null)(null)VAL(null)(null) (null)(null)VAL PEEKVAL(null)(null)(null) ":[153]
11360 [153][163]18)"PRINTASC-1CONTWAIT = (null)ETURN TO MENU."
11365 [153][163]18)"PRINTASC-3CONTWAIT = (null)OAD FILE."
11370 [153][163]18)"PRINTASC-5CONTWAIT = (null)REVIOUS PAGE."
11380 [153][163]18)"PRINTASC-7CONTWAIT = (null)EXT PAGE"
11390 [153][163]18)"PRINTASC-8CONTWAIT = STR$ELETE FILE."
11400 C$[178]"":[161]C$:[141]1000:[139]C$[178]""[167]11400
11410 [139]C$[178][199](136)[167]N[178]N[170]10:[137]11300
11420 [139]C$[178][199](135)[167]N[178]N[171]10:[137]11300
11425 [139]C$[178][199](140)[167][151]214,11:[153]:[141]7001:[137]11300
11430 [139]C$[178][199](133)[167][142]
11440 [139]C$[178][199](134)[167][137]11500
11450 [137]11400
11500 [151]214,11:[153]:[153]"PRINT VALNTER FILE NAME CONT":[133]NA$
11530 [141]3025
11550 [142]